perm filename TIME.HIS[ESS,JMC] blob
sn#014982 filedate 1972-12-01 generic text, type T, neo UTF8
00100 NOTES ON THE HISTORY OF TIME=SHARING AT M.I.T.
00200
00300 by John McCarthy
00400
00500
00600 The purpose of these notes is to set down what I
00700 remember of the matter so that it can be compared with
00800 the memories of others to get the true picture.
00900
01000 1. The idea of general purpose multi-terminal time sharing
01100 as the right way to use computers came to me before I had
01200 ever seen a computer. It took me a while to realize that
01300 not only wasn't this the way computers were used, but no-one
01400 had any specific plans to do so. I am sure the idea
01500 also occurred to other people. In fact, in the 1950's well
01600 before anyone started a time-sharing project, I remember
01700 a speech by Herb Grosch in which he quoted T. J. Watson Sr.
01800 as having said something like, "The computer really should
01900 be down in the basement and all you guys should sit in your
02000 offices using it." However, this was in the same part of the
02100 speech in which Grosch refferrred to everyone lying on the
02200 beach with the robots stuffing breadfruit in our mouths
02300 indicating to me that Grosch thought the whole idea very
02400 futuristic.
02500
02600 2. When I first came to M.I.T. in
02700 in September 1957 as a visiting Sloan foundation fellow from
02800 Dartmouth College, I immediately began to think about how
02900 we could get interactive computing from the IBM 704. The
03000 immediate motivation came from the belief that artificial
03100 intelligence research required interaction especially in
03200 order to run the proposed Advice Taker
03300 program. The first idea was worked out in collaboration
03400 with Minsky and consisted of attaching a typewriter to the
03500 IBM 704 by bypassing the sense switches and to use the
03600 trapping mode of the 704 to get interrupts. The idea was
03700 that pressing a key on the typewriter would
03800 force the machine into trapping mode and the next transfer
03900 instruction executed would trap to a program that would interpret
04000 the key, store the information, decide whether a message was complete, and if not
04100 jump back to the interrupted program. If the message
04200 was complete, the contents of core would be dumped on the
04300 drum and the program to deal with the message loaded
04400 from the drum.. After considerable discussion with Dean Arden,
04500 the Computation Center's director of research, a Jones
04600 plug to mount in the 704 was procured and permissioon was
04700 requested from IBM to make the minor modification to the
04800 704. This permission was granted fairly quickly, but further
04900 action was delayed because the task was given very low priority.
05000 I had an exaggerated idea of the engineering difficulties
05100 and everyone else had tasks they considered more urgent.
05200 Nevertheless, it would have been done, but a distraction
05300 appeared.
05400
05500 3. About xxx , we heard about the IBM "real time package"
05600 for the 704. This was a special device that had been designed
05700 so that Boeing could attach a wind tunnel to the computer.
05800 It consisted of an interrupt hat could interrupt at an
05900 arbitrary time, instructions for enabling it and disabling it,
06000 and a 36 buffer register for communicating with an external
06100 device and instructions for transferring information to and
06200 from the outside world through the register. There wrre
06300 also instructions for doing the handshaking. Ussing this device
06400 seemed much better than our scheme for taking over the
06500 sense switches. The only trouble was that it cost
06600 something like $2500 per month, so we campaigned for IBM
06700 to give it to us which they agreed to do after many
06800 months. One of the engineers, Arnold Siegel, I think, then
06900 began to plan an interface between the real time package and
07000 a flexo-writer.
07100
07200 4. About this time I began to plan a mutii-console
07300 time-sharing system whereby each of a number of users
07400 coluld act as thoough he had a computer to himself. The
07500 idea included a file system for which I proposed to use
07600 the magnetic disks that were just being announced. It
07700 also required a user mode of
07800 operation in which input-output instructions were forbidden
07900 and boundary and relocation registers. The boundary and
08000 relocation registers were planned for the IBM Stretch computer
08100 which I knew about as an IBM consultant, but I didn't think
08200 they could be readily obtained on the 7090 computer which
08300 had been announced..
08400
08500 5. Nevertheless, I proposed that M.I.T. undertake to
08600 used its expected IBM 7090 computer in a time-sharing way
08700 in a computation Center memorandum dated 1 January 1959.
08800 About this time also our ideas on time sharing were beginning
08900 to be expressed in progress reports and in our requests for
09000 research support to NSF.